<?php

/* * *********************************************************** */
/* * ******************** controller venda ******************* */
/* * ************ Desenvolvido por Antônio Ezequiel ************** */
/* * *********************************************************** */

//verifica se o usuario esta logado
if (!verificaUsuarioLogado ())
    header("location: " . $configurator["siteadmin"] . '/login.A&V');
//verifica se a sessão expirou
if (verificarExpiracaoSessao ())
    header("location: " . $configurator["siteadmin"] . '/login.A&V');
//verifica se o usuario tem permissao
if (!verificaPermissao($_GET['pg'])) {
    header("location: " . $configurator["siteadmin"] . '/erro_permissao.A&V');
}

//atauliza o log do usuario
atualizaLogUsuario($configurator);

//inclusão das classes
include($configurator["classes"] . "/venda.classes.php");
include($configurator["dao"] . "/vendaDao.php");
include($configurator["classes"] . "/Item_venda.classes.php");
include($configurator["dao"] . "/itemVendaDao.php");
include($configurator["classes"] . "/produto.classes.php");
include($configurator["dao"] . "/produtoDao.php");

//instanciação dos objetos
$_venda = new VendaDao();
$_itemVenda = new ItemVendaDao();
$_produto = new ProdutoDao();

if ($_GET['codigo']) {

    //pega todos os itens dessa venda
    $itens = $_itemVenda->listarItens($_GET['codigo']);

    if ($itens) {
        for ($i = 0; $i < count($itens); $i++) {
            //seleciona o produto do item
            $produto = $_produto->listarProduto($itens[$i]['produto']);

            //atualiza o estoque do produto
            $_produto->setEstoque($produto['estoque'] + $itens[$i]['quantidade']);
            $product = $_produto->atualizarEstoque($itens[$i]['produto']);

            //verifica se conseguiu atualizar o estoque
            if ($product) {
                $itv = $_itemVenda->deletarItem($itens[$i]['itvCodigo']);

                //verifica se excluiu o item
                if ($itv) {
                    $excluiItem[] = 1;
                } else {
                    //caso não consuiga excluir ele terá q adicionar novamente os itens excluidos
                    for ($j = 0; $j < $i; $j++) {
                        //seleciona o produto do item
                        $produto = $_produto->listarProduto($itens[$j]['produto']);
                        $_itemVenda->setProduto($itens[$j]['produto']);
                        $_itemVenda->setQuant($produto['estoque'] - $itens[$j]['quantidade']);
                        $_itemVenda->setVenda($itens[$j]['venda']);
                        $_itemVenda->adicionarItemVenda();
                    }
                    break;
                }
            } else {
                //caso não consiga atualizar o estoque de um produto, ele terá q adicionar novamente os itens excluidos
                for ($j = 0; $j < $i; $j++) {
                    //seleciona o produto do item
                    $produto = $_produto->listarProduto($itens[$j]['produto']);
                    $_itemVenda->setProduto($itens[$j]['produto']);
                    $_itemVenda->setQuant($produto['estoque'] - $itens[$j]['quantidade']);
                    $_itemVenda->setVenda($itens[$j]['venda']);
                    $_itemVenda->adicionarItemVenda();
                }
                break;
            }
        }

        //verifica se conseguiu excluir o produto
        if (count($excluiItem) == count($itens)) {
            $vend = $_venda->deletarVenda($_GET['codigo']);
        }
    } else {
        echo "Não pode selecionar os itens da venda para exclusão";
    }
    if ($vend)
        header("location: " . $configurator["siteadmin"] . '/venda_listagem.A&V!excluido!1');
}

if ($_POST['vendas']) {
    foreach ($_POST['vendas'] as $valor) {
        //pega todos os itens dessa venda
        $itens = $_itemVenda->listarItens($valor);

        if ($itens) {
            for ($i = 0; $i < count($itens); $i++) {
                //seleciona o produto do item
                $produto = $_produto->listarProduto($itens[$i]['produto']);

                //atualiza o estoque do produto
                $_produto->setEstoque($produto['estoque'] + $itens[$i]['quantidade']);
                $product = $_produto->atualizarEstoque($itens[$i]['produto']);

                //verifica se conseguiu atualizar o estoque
                if ($product) {
                    $itv = $_itemVenda->deletarItem($itens[$i]['itvCodigo']);

                    //verifica se excluiu o item
                    if ($itv) {
                        $excluiItem[] = 1;
                    } else {
                        //caso não consuiga excluir ele terá q adicionar novamente os itens excluidos
                        for ($j = 0; $j < $i; $j++) {
                            //seleciona o produto do item
                            $produto = $_produto->listarProduto($itens[$j]['produto']);
                            $_itemVenda->setProduto($itens[$j]['produto']);
                            $_itemVenda->setQuant($produto['estoque'] - $itens[$j]['quantidade']);
                            $_itemVenda->setVenda($itens[$j]['venda']);
                            $_itemVenda->adicionarItemVenda();
                        }
                        break;
                    }
                } else {
                    //caso não consiga atualizar o estoque de um produto, ele terá q adicionar novamente os itens excluidos
                    for ($j = 0; $j < $i; $j++) {
                        //seleciona o produto do item
                        $produto = $_produto->listarProduto($itens[$j]['produto']);
                        $_itemVenda->setProduto($itens[$j]['produto']);
                        $_itemVenda->setQuant($produto['estoque'] - $itens[$j]['quantidade']);
                        $_itemVenda->setVenda($itens[$j]['venda']);
                        $_itemVenda->adicionarItemVenda();
                    }
                    break;
                }
            }

            //verifica se conseguiu excluir o produto
            if (count($excluiItem) == count($itens)) {
                $vend = $_venda->deletarVenda($valor);
                $excluiItem = null;
            }
        } else {
            echo "Não pode selecionar os itens da venda para exclusão";
            continue;
        }
    }
    if ($dado)
        header("location: " . $configurator["siteadmin"] . '/venda_listagem.A&V!excluido!1');
}
header("location: " . $configurator["siteadmin"] . '/venda_listagem.A&V!excluido!1');
?>